//package com.itools.core.com.itools.config;
//
//import com.sun.deploy.util.ArrayUtil;
//import io.minio.MinioClient;
//import io.minio.errors.*;
//import org.springframework.util.StringUtils;
//import org.xmlpull.v1.XmlPullParserException;
//
//import java.io.IOException;
//import java.security.InvalidKeyException;
//import java.security.NoSuchAlgorithmException;
//import java.util.ArrayList;
//import java.util.Arrays;
//import java.util.List;
//
///**
// * 这个类目前只写了初始化客户端以及添加存储桶的方法。
// * 放值和取值没有写
// * 这里主要讲自动装配
// * @author xuchang
// */
//public class MinioUtils {
//
//    private MinioClient minioClient;
//
//    private List<String> buckets = new ArrayList<String>();
//
//    public MinioUtils(MinioProperties minioProperties) {
//        try {
//            initMinioClient(minioProperties);
//            addBuckets(StringUtils.split(",", minioProperties.getBucketName()));
//            makeBuckets();
//        } catch (Exception e) {
//            e.printStackTrace();
//            throw new RuntimeException("MinioClient初始化异常");
//        }
//    }
//
//    /**
//     * 添加存储桶
//     * @param buckets
//     */
//    public void addBuckets(String... buckets) {
//        this.buckets.addAll(Arrays.asList(buckets));
//    }
//
//    /**
//     * 添加存储桶
//     * @param buckets
//     */
//    public void addBucketsAndMake(String... buckets) {
//        this.buckets.addAll(Arrays.asList(buckets));
//        try {
//            makeBuckets();
//        } catch (Exception e) {
//            e.printStackTrace();
//            throw new RuntimeException("创建存储桶异常");
//        }
//    }
//
//    /**
//     * 初始化客户端
//     * @param minioProperties
//     */
//    private void initMinioClient(MinioProperties minioProperties) throws InvalidPortException, InvalidEndpointException {
//        minioClient = new MinioClient(minioProperties.getEndpoint(), minioProperties.getAccessKey(), minioProperties.getSecretKey());
//    }
//
//    /**
//     * 创建存储桶
//     */
//    public void makeBuckets() throws NoSuchAlgorithmException, IOException, InvalidKeyException, InsufficientDataException, ErrorResponseException, InvalidBucketNameException, InternalException, RegionConflictException, InvalidResponseException, XmlParserException {
//        for (String bucket : buckets) {
//            boolean isExist = false;
//            isExist = minioClient.bucketExists(bucket);
//            if (!isExist) {
//                minioClient.makeBucket(bucket);
//            }
//
//        }
//    }
//}